# 哪个作者的书评较高？【作品数量大于6的作者】
# coding:utf-8
import pandas as pd
import numpy as np
import openpyxl

filename = './src/book_data.csv'

# 读取文件
df = pd.read_csv(filename,encoding='gbk')

# 更改列名
df_t = df.copy()
df_t.rename(columns={'总书评数': '作品总书评数'}, inplace=True)

# 统计作品数
press = df_t['作者'].value_counts()

# 重置索引更改列名
press = pd.DataFrame(press)
press = press.reset_index().rename(columns={'index': '作者', '作者': '作品数量'})

# 将作品数量大于6的作者提取到列表中
lst = press[press['作品数量'] >= 1]['作者'].tolist()

# 第一组分析【总书评数】
press_rank = df_t[df_t['作者'].isin(lst)].groupby(by='作者', as_index=True).agg(
    {'作品总书评数': np.sum}).sort_values(by='作品总书评数', ascending=False)

# 第二组定性分析【被收藏数】
press_rank1 = df_t[df_t['作者'].isin(lst)].groupby(by='作者', as_index=True).agg(
    {'营养液数': np.sum}).sort_values(by='营养液数', ascending=False)

# 第三组定性分析【营养液数】
press_rank2 = df_t[df_t['作者'].isin(lst)].groupby(by='作者', as_index=True).agg(
    {'当前被收藏数': np.sum}).sort_values(by='当前被收藏数', ascending=False)

# press_rank3 = df_t[df_t['作者'].isin(lst)].groupby(by='作者', as_index=True).agg(
#     {'全文字数': np.sum}).sort_values(by='全文字数', ascending=False)

# 导出为excel
press_rank.to_excel('./src/press_rank.xlsx')
press_rank1.to_excel('./src/press_rank1.xlsx')
press_rank2.to_excel('./src/press_rank2.xlsx')
# press_rank3.to_excel('./src2/press_rank3.xlsx')

